package sagroup.dracots.metrics;

/**
 * 
 * metrics record is the basic unit of metirc
 * it includes operation, size and the process time.
 *
 */

public interface MetricsRecord {

	public abstract String getRecordName(); 

//	public abstract void setMetric(String metricName,MetricsInfo metricValue);
	public abstract void setMetric(String metricName, int metricValue);

	public abstract void setMetric(String metricName, float metricValue);
	
	  /**
	   * Increments the named metric by the specified value.
	   *
	   * @param metricName name of the metric
	   * @param metricValue incremental value
	   * @throws MetricsException if the metricName or the type of the metricValue 
	   * conflicts with the configuration
	   */
	public abstract void incrMetric(String metricName,int metricValue);

	  /**
	   * Increments the named metric by the specified value.
	   *
	   * @param metricName name of the metric
	   * @param metricValue incremental value
	   * @throws MetricsException if the metricName or the type of the metricValue 
	   * conflicts with the configuration
	   */
	public abstract void incrMetric(String metricName,float metricValue);

	public abstract void update();


	public abstract void remove();

	
}
